﻿#include <graphics.h>
#include <iostream>
#include <ctime>
#include "game_modes.h"

/*
本项目参考了以下博客的Python代码
https://www.freesion.com/article/4857371043/
由于俄罗斯方块路径规划算法不完善，所以AI的效果仅在直接展示模式发挥较大作用;
AI在人机对战和逐步展示模式受到较大限制，不一定能落到想到的结果
*/
int main() {
    // 初始化图形窗口
    initgraph(SCREEN_WIDTH, SCREEN_HEIGHT);

    bool continuePlaying = true;
    while (continuePlaying) {
        // 显示模式选择界面
        GameMode mode = ShowModeSelection();

        // 根据选择模式执行不同逻辑
        switch (mode) {
        case SINGLE_PLAYER:
            RunSinglePlayerGame();
            break;

        case TWO_PLAYER:
            RunTwoPlayerGame();
            break;

        case HUMAN_VS_AI:
            MessageBox(nullptr, _T("人机对战模式实现不完善，请见谅"), _T("提示"), MB_OK);
            RunPlayerVsAIGame();
            break;

        case SINGLE_AI_STEP_BY_STEP:
            MessageBox(nullptr, _T("逐步展示模式实现不完善，请见谅"), _T("提示"), MB_OK);
            RunAutoDemoGameStepByStep();
            break;

        case SINGLE_AI_DIRECT:
            RunAutoDemoGameDirect();
            break;

        default:
            break;
        }

        // 询问是否继续游戏
        continuePlaying = AskToContinue();

        // 重置图形窗口
        cleardevice();
    }

    // 关闭图形窗口
    closegraph();
    return 0;
}